package com.hyh.admin.service;


import com.hyh.ad.common.core.domain.AjaxResult;
import com.hyh.admin.domain.resources.DTO.WordCountDto;
import com.hyh.admin.domain.resources.Resources;
import com.hyh.admin.domain.resources.ResourcesComment;
import com.hyh.admin.domain.resources.vo.ResourcesCategoryVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/*
 * 资源列表
 */
public interface IResourcesService {
    /**
     * 查询资源
     * @param resources
     * @return 资源列表
     */
    List<Resources> selectResourcesComment(Resources resources);

    /**
     * 更新资源
     * @param  resources
     * @return 更新标志
     */
    int updateResources(Resources resources);

    /**
     * 删除资源
     * @param  resources
     * @return 删除标志
     */
    int deleteResources(Resources resources);

    /**
     * 插入资源
     * @param  resources
     * @return 插入标志
     */
    int insertResources(Resources resources);

    /**
     * 根据用户id查询资源
     * @param
     * @return
     */
    List<Resources> selectResourcesByUserId(Long userId);

    /**
     * 根据资源id查询资源
     * @param
     * @return
     */
    Resources selectResourcesById(Long id);

    /**
     * 批量删除
     * @param
     * @return
     */
    int deleteResourcesBatch(Long[] ids);

    /**
     * 根据热度查询资源
     * @param
     * @return
     */
    List<Resources> selectResourcesByHot(Resources resources);


    /**
     * 查询当前分类下的资源列表
     * @param  categoryId
     * @return 资源列表
     */
    List<ResourcesCategoryVo> selectResourcesByCategoryId(Long categoryId);

    /**
     * 查询所有资源列表
     * @param
     * @return 资源列表
     */
    List<ResourcesCategoryVo> selectResourcesList();

    /**
     * 根据父资源id查询资源列表
     * @param  parentId
     * @return 资源列表
     */
    List<Resources> selectResourcesByParentId(Long parentId);

    /**
     * 保存资源
     * @param
     * @return 保存标志
     */
    Resources saveResource(Long parentId,String title, String description, Long categoryId, String tags, MultipartFile coverImage, MultipartFile video);

    /**
     * 根基ids查询资源
     * @param
     * @return
     */
    List<Resources> selectResourcesByIds(String[] ids);

    /**
     * 查询所有资源
     * @param
     * @return
     */
    List<Resources> selectResourcesListPage(Resources resources);

    /**
     * 更改审核状态
     * @param  id
     *  @param  status
     * @return
     */
    int updateStatus(Long id,String status);

    /**
     * 统计词条 从历史收藏和浏览记录里面
     * @param resources
     * @return 资源评论列表
     */
    List<WordCountDto> selectResourcesWordList(Resources resources);


    /**
     * 统计课程学习
     * @param resources
     * @return 资源评论列表
     */
    List<WordCountDto> selectResourcesLearnList(Resources resources);
}
